/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pe.edu.upc.sigu.entities;

import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Embeddable;

/**
 *
 * @author Usuario2
 */
@Embeddable
public class CursosSeccionesDocentesPK implements Serializable {
    @Basic(optional = false)
    @Column(name = "institucion")
    private int institucion;
    @Basic(optional = false)
    @Column(name = "periodo")
    private String periodo;
    @Basic(optional = false)
    @Column(name = "carrera")
    private String carrera;
    @Basic(optional = false)
    @Column(name = "curso")
    private String curso;
    @Basic(optional = false)
    @Column(name = "seccion")
    private String seccion;
    @Basic(optional = false)
    @Column(name = "personal")
    private String personal;
    @Basic(optional = false)
    @Column(name = "tipo_curso")
    private int tipoCurso;
    @Basic(optional = false)
    @Column(name = "grupo")
    private String grupo;

    public CursosSeccionesDocentesPK() {
    }

    public CursosSeccionesDocentesPK(int institucion, String periodo, String carrera, String curso, String seccion, String personal, int tipoCurso, String grupo) {
        this.institucion = institucion;
        this.periodo = periodo;
        this.carrera = carrera;
        this.curso = curso;
        this.seccion = seccion;
        this.personal = personal;
        this.tipoCurso = tipoCurso;
        this.grupo = grupo;
    }

    public int getInstitucion() {
        return institucion;
    }

    public void setInstitucion(int institucion) {
        this.institucion = institucion;
    }

    public String getPeriodo() {
        return periodo;
    }

    public void setPeriodo(String periodo) {
        this.periodo = periodo;
    }

    public String getCarrera() {
        return carrera;
    }

    public void setCarrera(String carrera) {
        this.carrera = carrera;
    }

    public String getCurso() {
        return curso;
    }

    public void setCurso(String curso) {
        this.curso = curso;
    }

    public String getSeccion() {
        return seccion;
    }

    public void setSeccion(String seccion) {
        this.seccion = seccion;
    }

    public String getPersonal() {
        return personal;
    }

    public void setPersonal(String personal) {
        this.personal = personal;
    }

    public int getTipoCurso() {
        return tipoCurso;
    }

    public void setTipoCurso(int tipoCurso) {
        this.tipoCurso = tipoCurso;
    }

    public String getGrupo() {
        return grupo;
    }

    public void setGrupo(String grupo) {
        this.grupo = grupo;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (int) institucion;
        hash += (periodo != null ? periodo.hashCode() : 0);
        hash += (carrera != null ? carrera.hashCode() : 0);
        hash += (curso != null ? curso.hashCode() : 0);
        hash += (seccion != null ? seccion.hashCode() : 0);
        hash += (personal != null ? personal.hashCode() : 0);
        hash += (int) tipoCurso;
        hash += (grupo != null ? grupo.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof CursosSeccionesDocentesPK)) {
            return false;
        }
        CursosSeccionesDocentesPK other = (CursosSeccionesDocentesPK) object;
        if (this.institucion != other.institucion) {
            return false;
        }
        if ((this.periodo == null && other.periodo != null) || (this.periodo != null && !this.periodo.equals(other.periodo))) {
            return false;
        }
        if ((this.carrera == null && other.carrera != null) || (this.carrera != null && !this.carrera.equals(other.carrera))) {
            return false;
        }
        if ((this.curso == null && other.curso != null) || (this.curso != null && !this.curso.equals(other.curso))) {
            return false;
        }
        if ((this.seccion == null && other.seccion != null) || (this.seccion != null && !this.seccion.equals(other.seccion))) {
            return false;
        }
        if ((this.personal == null && other.personal != null) || (this.personal != null && !this.personal.equals(other.personal))) {
            return false;
        }
        if (this.tipoCurso != other.tipoCurso) {
            return false;
        }
        if ((this.grupo == null && other.grupo != null) || (this.grupo != null && !this.grupo.equals(other.grupo))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "pe.edu.upc.sigu.entities.CursosSeccionesDocentesPK[institucion=" + institucion + ", periodo=" + periodo + ", carrera=" + carrera + ", curso=" + curso + ", seccion=" + seccion + ", personal=" + personal + ", tipoCurso=" + tipoCurso + ", grupo=" + grupo + "]";
    }

}
